package cn.lingyangwl.agile.pay.pay.model.rqrs.payorder;

import cn.lingyangwl.agile.pay.constant.PayDataTypeEnum;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.apache.commons.lang3.StringUtils;

/**
 * 通用支付数据RS
 * 根据set的值，响应不同的payDataType
 *
 * @author shenguangyang
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class CommonPayDataRS extends UnifiedOrderExtRS {

    /**
     * 跳转地址
     */
    private String payUrl;

    /**
     * 二维码地址
     */
    private String codeUrl;

    /**
     * 二维码图片地址
     */
    private String codeImgUrl;

    /**
     * 表单内容
     */
    private String formContent;

    @Override
    public String buildPayDataType() {

        if (StringUtils.isNotEmpty(payUrl)) {
            return PayDataTypeEnum.PAY_URL.getCode();
        }

        if (StringUtils.isNotEmpty(codeUrl)) {
            return PayDataTypeEnum.CODE_URL.getCode();
        }

        if (StringUtils.isNotEmpty(codeImgUrl)) {
            return PayDataTypeEnum.CODE_IMG_URL.getCode();
        }

        if (StringUtils.isNotEmpty(formContent)) {
            return PayDataTypeEnum.FORM.getCode();
        }

        return PayDataTypeEnum.PAY_URL.getCode();
    }

    @Override
    public String buildPayData() {

        if (StringUtils.isNotEmpty(payUrl)) {
            return payUrl;
        }

        if (StringUtils.isNotEmpty(codeUrl)) {
            return codeUrl;
        }

        if (StringUtils.isNotEmpty(codeImgUrl)) {
            return codeImgUrl;
        }

        if (StringUtils.isNotEmpty(formContent)) {
            return formContent;
        }

        return "";
    }

}
